// https://commitlint.js.org/#/reference-rules

/**
 * 具体 git 代码提交规范如下
type：用于说明 commit 的类型，被指定在 commitlint.config.js 的 type-enum
feat：新功能（feature）
fix：修补bug
perf: 优化相关，比如提升性能、体验等
ui: 更新ui库
docs：文档
style： 格式（不影响代码运行的变动）
refactor：重构（即不是新增功能，也不是修改bug的代码变动）
test：增加测试
ci: 持续集成
chore：更改配置文件
revert: 回滚到上一个版本
deploy: 部署
————————————————
fix之后必须是英文的冒号，并且需要敲一个空格  git commit -m "fix: 我是bug已被征服"
 */
module.exports = {
    rules: {
        'type-enum': [
            2,
            'always',
            [
                'feat',
                'fix',
                'docs',
                'ui',
                'style',
                'refactor',
                'perf',
                'test',
                'ci',
                'chore',
                'revert',
                'deploy',
            ],
        ],
        'type-case': [2, 'always', 'lower-case'], // 格式 小写
        'type-empty': [2, 'never'], // 不能为空
        'scope-enum': [2, 'always', ['core', 'style', 'docs', 'dev', 'util', 'store', 'suspense']],
        'scope-case': [2, 'always', 'lower-case'], //范围格式 小写
        'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
        'subject-empty': [2, 'never'], // 主要 message 不能为空
        'subject-full-stop': [2, 'never', '.'],
        'header-min-length': [2, 'always', 3], // 最少3个字符
        'header-max-length': [2, 'always', 72], // 最多72字符
        'body-leading-blank': [2, 'always'],
    },
}
